{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "from torch.autograd import Variable\n",
    "import torch as t"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Net1(nn.Module):\n",
    "    def __init__(self):\n",
    "        super(Net1, self).__init__()\n",
    "        \n",
    "        self.fc1 = nn.Linear(28*28, 300)\n",
    "        self.fc2 = nn.Linear(300, 10)\n",
    "        \n",
    "    def forward(self, x):\n",
    "        x = x.view(x.shape[0], -1)\n",
    "        x = F.relu(self.fc1(x))\n",
    "        x = F.logsigmoid(self.fc2(x))\n",
    "        return x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from mnist_loader import load_data_shared, vectorized_result\n",
    "training_data, validation_data, test_data = load_data_shared(filename=\"../mnist.pkl.gz\",\n",
    "                                                                     seed=666,\n",
    "                                                                     train_size=1000,\n",
    "                                                                     vali_size=0,\n",
    "                                                                     test_size=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def predict(data, net):\n",
    "    with t.no_grad():\n",
    "        #for index in range(test_data[0].shape[0]):\n",
    "            # get the inputs\n",
    "        inputs, labels = t.Tensor(data[0]), data[1]\n",
    "\n",
    "        # forward + backward + optimize\n",
    "        outputs = net(inputs)\n",
    "        _, predicted = t.max(outputs, 1)\n",
    "\n",
    "        correct = (predicted == t.Tensor(labels)).sum().item()\n",
    "        accuracy = correct / data[0].shape[0]\n",
    "        return accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def fit(net, criterion, optimizer):\n",
    "    loss_scores = []\n",
    "    test_scores = []\n",
    "    train_scores = []\n",
    "    for epoch in range(100):  # loop over the dataset multiple times\n",
    "\n",
    "        # get the inputs\n",
    "        inputs, labels = t.Tensor(training_data[0]), t.Tensor(training_data[1])\n",
    "        vector_labels = t.Tensor([vectorized_result(y) for y in training_data[1]])\n",
    "        # zero the parameter gradients\n",
    "        optimizer.zero_grad()\n",
    "\n",
    "        # forward + backward + optimize\n",
    "        outputs = net(inputs)\n",
    "        loss = criterion(outputs, labels.long())\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "\n",
    "        # print statistics\n",
    "        loss_scores.append(loss.item())\n",
    "        train_scores.append(predict(training_data, net))\n",
    "        test_scores.append(predict(test_data, net))\n",
    "    print('Finished Training')\n",
    "    return loss_scores, train_scores, test_scores"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ReLU + Sigmoid + Cross Entropy + L2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Finished Training\n"
     ]
    }
   ],
   "source": [
    "import torch.optim as optim\n",
    "net1 = Net1()\n",
    "criterion1 = nn.CrossEntropyLoss()\n",
    "optimizer1 = optim.SGD(net1.parameters(), lr = 1e-1, weight_decay=1e-2)\n",
    "loss_scores1, train_scores1, test_scores1 = fit(net1, criterion1, optimizer1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.plot(loss_scores1)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.plot(train_scores1)\n",
    "plt.plot(test_scores1)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#  ReLU + Sigmoid + Cross Entropy + L2 + dropout"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Net2(nn.Module):\n",
    "    def __init__(self):\n",
    "        super(Net2, self).__init__()\n",
    "        \n",
    "        self.fc1 = nn.Linear(28*28, 600)\n",
    "        self.dropout1 = nn.Dropout(p=0.5)\n",
    "        self.fc2 = nn.Linear(600, 10)\n",
    "        \n",
    "    def forward(self, x):\n",
    "        x = x.view(x.shape[0], -1)\n",
    "        x = F.relu(self.fc1(x))\n",
    "        x = self.dropout1(x)\n",
    "        x = F.logsigmoid(self.fc2(x))\n",
    "        return x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Finished Training\n"
     ]
    }
   ],
   "source": [
    "import torch.optim as optim\n",
    "net2 = Net2()\n",
    "criterion2 = nn.CrossEntropyLoss()\n",
    "optimizer2 = optim.SGD(net2.parameters(), lr = 1e-1, weight_decay=1e-2)\n",
    "loss_scores2, train_scores2, test_scores2 = fit(net2, criterion2, optimizer2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.plot(loss_scores2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.plot(train_scores2)\n",
    "plt.plot(test_scores2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# dropout效果对比"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.plot(test_scores1)\n",
    "plt.plot(test_scores2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "为什么dropout会出现这样奇葩的效果？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
